防火长城(英语:Great Firewall (of China),常用简称:GFW,中文也称中国国家防火墙,中国大陆民众俗称防火墙功夫网等等),是对中华人民共和国政府在其互联网边界审查系统(包括相关行政审查系统)的统称。此系统起步于1998年,其英文名称得自于2002年5月17日Charles R. Smith所写的一篇关于中国网络审查的文章《The Great Firewall of China》,取与Great Wall(长城)相谐的效果,简写为Great Firewall,缩写GFW。随着使用的拓广,中文“墙”和英文“GFW”有时也被用作动词,网友所说的“被墙”即指网站内容被防火长城所屏蔽,“翻墙”也被引申为突破网络审查浏览境内外被屏蔽的网站或使用服务(如被GFW屏蔽的网盘Dropbox)的行为。

写在前面

作为一名IT行业的学生,了解国外的先进技术十分有必要。2018年2月1日之后,各大主流VPN提供商纷纷倒下,迫于对知识的渴望,自己动手搭建了一个VPS,并成功连接上了VPN

福利

拿本文采用的VPS提供商Digital Ocean来说,每月的租金并不便宜,下面提供了两种福利,请按顺序领取,高校学生共能获得**$60**的奖励。

邀请链接

Azha’s Bonus 点击该链接注册账号即可获得**$10**和两个月的免费存储空间,当你在Digital Ocean消费$25美元时,我也能获得$25的奖励。邮件原文:

They’ll get $10 in credit just for signing up (+2 months free for Spaces, our new object storage service. As soon as they’ve spent $25 with us, you get $25 in credit.

学生福利

当一个学生真是太爽了!各大企业都不吝对学生提供优惠来培养未来的客户,Github Education就提供了Student Developer Pack,开发包里就含有一张面值**$50**的credit coupon,当然还有各种各样的优惠券,与本文无关不再赘述。如果你是一名高校学生,在Github里绑定一个edu邮箱,通过该认证邮箱领取你的专属Student Developer Pack吧!

注意事项

请先点击邀请链接注册账号,再使用Paypal 充值**$5来激活你的账户(Paypal与银行卡的绑定类似于支付宝,其中农行借记卡不能绑定Paypal)。激活之后点击个人头像,点击Settings**,下拉找到Promo code,输入你的优惠码,这时候你会发现,使用不了!Digital Ocean网站限制了优惠次数,也就是说不管你通过什么样方式获得优惠,只能优惠一次,所以学生码不管用了。
这个时候大家可以在网站的Support里提交一个Ticket,也就是给客服发个邮件说明情况,客服一般会帮你手动添加的。鉴于每一封邮件往来时间可能需要一天,所以在发ticket的时候就把你的Github学生优惠码贴上。按下图所示步骤

  1. 进入网站点击Support

  2. 拉到网页下方点击Contact Support

  3. 点击如图所示的内容,描述你的问题

  4. Ticket模板

Hello,
    I am a student .I got a student coupon on Github, but when I typed this coupon on the website,it was remind that I couldn't use it. Could you help me? Here is my coupon code: "这里填上你的优惠码".
  1. 静候佳音 Happy coding!

购买VPS

  1. 进入网站点击Craete,选择Droplets

  2. 选择服务器镜像,这里推荐Ubuntu 14.04 x64

  3. 选择配置方案,如果只用来做VPN,最便宜的方案足矣

  4. 选择节点区域,这里推荐San Francisco 2,速度感人

  5. 附加选项,没需要的话都不必勾选,否则可能产生额外费用

  6. Create,稍等待一会儿,你的VPS就初始化好了!

配置VPS

  1. 使用PuTTY 连接你的VPS。输入你的IP地址,保持prot值为22不变,点击open即可

  2. 登录你的VPS,用户名root,密码会发送到你的邮箱里,第一次登录需要你改密码。有一点Linux使用经历操作起来会顺手一些。依次输入下列指令

# 安装pip
$apt-get install python-pip

# 安装shadowsocks
$pip install shadowsocks
  1. 通过vim创建并修改shadowsocks.json配置文件
vi /etc/shadowsocks.json

在文件中输入如下指令(可以先了解一下vim的使用手册),更改相应部分为你的VPS信息

{
 "server":"your_server_ip",
 "server_port":443,
 "local_address":"127.0.0.1",
 "local_port":1080,
 "password":"your_password",
 "timeout":333,
 "method":"aes-256-cfb",
 "fast_open":false
 }
  1. 启动shadowsocks
# 后台启动shadowsocks
$ssserver -c /etc/shadowsocks.json -d start
  1. Enjoy!

终端体验

Windows PC

下载shadowsocks on Windows,绿色版解压即可使用

填入信息,系统托盘里右键小飞机,启用系统代理

iOS iPhone

2018年2月1日之后,app store就不见了各种shadowsocks工具的身影,苦苦寻找之后,终于找到了一个超级好用的shadowsocks工具SsrConnectPro。配置相关信息,Connect!

MacOS MacBook

下载shadowsocks on MacOS,按照说明操作即可。

Android Phone

下载并安装影梭apk,与上述配置方法相似,不再赘述。

Google

Google是一个了不起的企业,现在你可以体验Google Search了!

基于TCP拥塞控制的加速

渐渐地有了速度上的需求,这时候需要对VPS进行加速,我建立了两个同样配置的节点,采取两种主流的不一样的加速方法——BBR加速和serverspeeder(锐速)加速,但其实并无网上传言那么神奇,毕竟配置还是主要制约因素。

BBR加速

BBR是Google开发的TCP拥塞控制算法,据说能有效提升VPN的用户体验。
个人开启并体验了BBR加速,但并没有明显的提速感觉,反而觉得速度下降了些,不知道是坊间传言太神乎了,还是我的操作存在差错,欢迎大神指教。操作如下:

# 安装 可能需要重启VPS
$wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh

# 验证一下是否成功安装最新内核并开启 TCP BBR
$uname -r

# 查看内核版本
$sysctl net.ipv4.tcp_available_congestion_control
$sysctl net.ipv4.tcp_congestion_control
$sysctl net.core.default_qdisc

# 检查是否开启BBR
$lsmod | grep bbr

一个月的体验之后,对BBR还较为满意。

serverspeeder(锐速)加速

据说锐速会比BBR更加暴力地加速,并且很多前辈们都贴出了自己的经验,按照网上总结出的教程如下:

# 下载wget
$yum -y install wget
$wget  -N  --no-check-certificate 

# 安装脚本
$https://raw.githubusercontent.com/wn789/serverspeeder/master/serverspeeder-all.sh

# 执行脚本
$bash  serverspeeder-all.sh

该过程可能需要更换内核,详细请参考DigitalOcean Ubuntu 更换为锐速可用的内核
至于锐速的效果嘛,emmmmmm…目前我已经删除该节点:)

VPS开机自启动shadowsocks

每一次reboot之后都得重新启动服务,这显然不符合程序员懒的特性,于是我们可以通过编辑几个文件,做到VPS开机自启动ss服务。

# 编辑/etc/rc.local
$vim /etc/rc.local

在文件中添加ssserver -c /etc/shadowsocks.json -d start即可。

# 修改/etc/init.d/rc.local文件
$vi /etc/init.d/rc.local

将原本的PATH=/sbin:/usr/sbin:/bin:/usr/bin修改为PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin即可。

系统重启将成功执行ssserver -c /etc/shadowsocks.json -d start命令。Enjoy!

法律法规

VPN仅用于 科学研究学术交流 用途,请务必遵守相关法规,转发敏感内容需要慎重。

任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得危害网络安全, 不得利用网络从事危害国家安全、荣誉和利益,煽动颠覆国家政权、推翻社会主义制度,煽动分裂 国家、破坏国家统一,宣扬恐怖主义、极端主义,宣扬民族仇恨、民族歧视,传播暴力、淫秽色情 信息,编造、传播虚假信息扰乱经济秩序和社会秩序,以及侵害他人名誉、隐私、知识产权和其他 合法权益等活动。

附:《中华人民共和国网络安全法

再说两句

大家连接上自己的VPN之后再访问我的博客就能看到我的博客评论模块啦!欢迎大家友善交流(╹ڡ╹ )

参考资料

Digiatl Ocean学生优惠码失效解决方案
搭建自己的VPN服务器
科学上网漫游指南
shadowsocks
一键安装最新内核并开启 BBR 脚本
DigitalOcean Ubuntu 更换为锐速可用的内核
锐速ServerSpeeder无限带宽无限制版一键安装包